package com.ruoyi.eduManage.domain.dto;

import java.util.List;
import java.util.Map;

/**
 * 每日统计邮件数据传输对象
 * 
 * @author ruoyi
 */
public class DailyStatisticsMailDTO {
    
    /** 教师姓名 */
    private String teacherName;
    
    /** 教师邮箱 */
    private String teacherEmail;
    
    /** 开始日期 */
    private String startDate;
    
    /** 结束日期 */
    private String endDate;
    
    /** 班级数据列表 */
    private List<ClassStatisticsData> classDataList;
    
    /**
     * 班级统计数据
     */
    public static class ClassStatisticsData {
        /** 班级编码 */
        private String classCode;
        
        /** 班级名称 */
        private String className;
        
        /** 日期列（动态生成的日期列表） */
        private List<String> dateColumns;
        
        /** 学生数据列表 */
        private List<StudentDailyData> studentData;
        
        /** 总学生数 */
        private Integer totalStudents;
        
        /** 总提交次数 */
        private Integer totalSubmissions;
        
        /** 已提交次数 */
        private Integer submittedCount;
        
        /** 出勤率 */
        private Double attendanceRate;

        // Getters and Setters
        public String getClassCode() {
            return classCode;
        }

        public void setClassCode(String classCode) {
            this.classCode = classCode;
        }

        public String getClassName() {
            return className;
        }

        public void setClassName(String className) {
            this.className = className;
        }

        public List<String> getDateColumns() {
            return dateColumns;
        }

        public void setDateColumns(List<String> dateColumns) {
            this.dateColumns = dateColumns;
        }

        public List<StudentDailyData> getStudentData() {
            return studentData;
        }

        public void setStudentData(List<StudentDailyData> studentData) {
            this.studentData = studentData;
        }

        public Integer getTotalStudents() {
            return totalStudents;
        }

        public void setTotalStudents(Integer totalStudents) {
            this.totalStudents = totalStudents;
        }

        public Integer getTotalSubmissions() {
            return totalSubmissions;
        }

        public void setTotalSubmissions(Integer totalSubmissions) {
            this.totalSubmissions = totalSubmissions;
        }

        public Integer getSubmittedCount() {
            return submittedCount;
        }

        public void setSubmittedCount(Integer submittedCount) {
            this.submittedCount = submittedCount;
        }

        public Double getAttendanceRate() {
            return attendanceRate;
        }

        public void setAttendanceRate(Double attendanceRate) {
            this.attendanceRate = attendanceRate;
        }
    }
    
    /**
     * 学生每日数据
     */
    public static class StudentDailyData {
        /** 学生学号 */
        private String studentNo;
        
        /** 学生姓名 */
        private String studentName;
        
        /** 英文名 */
        private String englishName;
        
        /** 每日状态 (日期 -> 状态) */
        private String dailyStatus;
        
        /** 总积分 */
        private Integer totalScore;

        // Getters and Setters
        public String getStudentNo() {
            return studentNo;
        }

        public void setStudentNo(String studentNo) {
            this.studentNo = studentNo;
        }

        public String getStudentName() {
            return studentName;
        }

        public void setStudentName(String studentName) {
            this.studentName = studentName;
        }

        public String getEnglishName() {
            return englishName;
        }

        public void setEnglishName(String englishName) {
            this.englishName = englishName;
        }

        public String getDailyStatus() {
            return dailyStatus;
        }

        public void setDailyStatus(String dailyStatus) {
            this.dailyStatus = dailyStatus;
        }

        public Integer getTotalScore() {
            return totalScore;
        }

        public void setTotalScore(Integer totalScore) {
            this.totalScore = totalScore;
        }
    }

    // Main class Getters and Setters
    public String getTeacherName() {
        return teacherName;
    }

    public void setTeacherName(String teacherName) {
        this.teacherName = teacherName;
    }

    public String getTeacherEmail() {
        return teacherEmail;
    }

    public void setTeacherEmail(String teacherEmail) {
        this.teacherEmail = teacherEmail;
    }

    public String getStartDate() {
        return startDate;
    }

    public void setStartDate(String startDate) {
        this.startDate = startDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    public List<ClassStatisticsData> getClassDataList() {
        return classDataList;
    }

    public void setClassDataList(List<ClassStatisticsData> classDataList) {
        this.classDataList = classDataList;
    }
}